FPS Controller 1.0
Max 4.0
Source Code
Sample File

This modifier works similiarly to the independant position controller except it does some simple collision detection when you do interactive mouse movement. When you move an object with the mouse, it will prevent the pivot of the object penetrating the faces of the objects in the Collision Nodes list.

Add Object - adds an object to the collision list
Remove Object - removes an object from the collision list
Standoff - this is how far away the object will try to stay away from the surface when it collides.
FPS Mode - this puts the controller in a first person shooter mode. When this is on the ibject will try to stay X number units above the surface in the Z world axis. Where x is the Height field. This is useful if you are doing an architectual walk through or doing game level work.
Height - this is how high the object will stay above the surface in the Z axis when in FPS mode
Wall Collision - This is still pretty flaky, but it is supposed to prevent you from walking through walls.

Help - will take you to the help page


Turtorial FPS Mode

Load CCMap.max
Select Camera Lower Level and move it around in the top view. NOtice as you move it it stay a few units above the surface.
Go into the motion panel and notice the camera is in FPS mode
Now make the camera view active


Set your camera move mode to Pan mode and pan around to look around



Set your camera move mode to Dolly mode and and use this mode to go in the direction you are pointed along the collisionsurface.


Issues

The collision detection is still pretty weak, mainly because Max tracks the movement vector as one big vector instead of a buncha little ones. So for instance if you wanted to drag an object around a corner, you have to drag to the corner, let up on the mouse, and the drag it again in the direction you want to change.

Note this utility has not been fully tested in a production enviroment so use at your own risk. If you encounter any problems please contact me at

Peter Watje